/*
 * Vertex.h
 *
 *  Created on: May 12, 2011
 *      Author: ei07121
 */

#ifndef VERTEX_H_
#define VERTEX_H_

#include <cstdio>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>

#include "graphviewer.h"



using namespace std;

//! Class Vertex
/*!
 * Keeps all the Vertexs' information such as name, id ...
 */

class Vertex {

	string nome; 			/*!< Name of the Vertex */
	int id;					/*!< id of the Vertex */

	int custAcum;			/*!< Acumulator of the Vertex */
	vector<int> id_edges;
	bool processing;		/*!< Processing BOOL */
	vector <Vertex> path;			/*!< VECTOR with VERTEXs to path already established */


public:

	Vertex();
	Vertex(string n, int i);

	void addEdge(int id);
	void addToPath(Vertex v);

	virtual ~Vertex();
	int getCustAcum() const;
	int getId() const;
	vector<int> getId_edges() const;
	string getNome() const;
	void setCustAcum(int custAcum);
	void setId(int id);
	void setId_edges(vector<int> id_edges);
	void setNome(string nome);

    bool getProcessing() const;

    void setProcessing(bool processing);
    vector<Vertex> getPath() const;
    void setPath(vector<Vertex> path);



};

#endif /* VERTEX_H_ */


